import java.math.BigDecimal;

public class BigDecimalMethod1 {
    public static void main(String[] args) {
        //先定义了两个基本数据类型，我们知道
        //0.1 + 0.2 在double 类型运行是不精确的
        double data1 = 0.1;
        double data2 = 0.2;

        //由基本数据类型转变为引用类型
        //利用自动装箱，在等号后面可以直接写基本数据类型，它会自动装箱
        Double d1 = data1;
        Double d2 = data2;

        //将Double类型转变为String类型
        //利用Double类型实例方法toString()
        String s1 = d1.toString();
        String s2 = d2.toString();

        //利用构造器传进字符串来创建对象，
        //由字符串类型转变为BigDecimal类型
        BigDecimal b1 = new BigDecimal(s1);
        BigDecimal b2 = new BigDecimal(s2);

        //BigDecimal类中的实例方法 add()方法，
        //将两个BigDecimal类型相加
        BigDecimal c = b1.add(b2);
        //调用BigDecimal的实例方法 doubleValue()，
        //将BigDecimal类型转变为基本数据类型
        double a = c.doubleValue();
        //+1是为了表达a是浮点型，不是字符串
        System.out.println(a+1);
    }

}
